home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / BUS / XLogicCircuits 1.2.sit / xLogicCircuits 1.2 / About xLogicCircuts next >
Text File  |  1995-05-29  |  8KB  |  43 lines

  1.  
  2.     I wrote this program rather quickly a few years ago for use in an introductory computer science course.  It works fine for the examples I wanted to do in that course, including non-trivial circuits such as flip-flops, but it does not profess to be a serious circuit-design program.  This is a freeware program that can be freely distributed, as long as no charge is made.  It can  be distributed on anonymous FTP sites, bulletin boards, on-line services, and CD shareware collections, as long as no special charge is made.
  3.  
  4.      Note that version 1.2 adds printing capability to version 1.1.
  5.  
  6.      Some time after writing the program, I began work on an introductory computer science textbook, "The Most Complex Machine:  A Survey of Computers and Computing" (to be published in July, 1995, by A K Peters LTD, Wellesley MA USE; ISBN 1-56881-054-7).  I use xLogicCircuits, along with some newer programs I have written, in the course I teach from book.  If you like the program, consider buying the book!  At least you could aks your library to order it.  (Just in case, an order form for the book is included with this program in a file called "TMCM order form"--or at least it was when I first released it.)
  7.  
  8. Information and suport for the book and programs (including xLogicCircuits) is available on the World Wide Web at:   http://math.hws.edu/TMCM.html
  9.  
  10.  
  11. David Eck
  12. Department of Mathematics
  13. Hobart and William Smith Colleges
  14. Geneva, NY   14456
  15. (E-mail:  eck@hws.edu)
  16.  
  17. *****************************
  18.  
  19. About the program:
  20.  
  21.  
  22.      The program xLogicCircuits allows you to construct (rather idealized) circuits made up of AND, OR, and NOT gates.  Circuits with feedback loops are alowed, so that you can construct memory elements such as flip-flops.  You can save the circuits as files.  These files can later be used as subcircuits in circuits created with the program.  A number of sample files are included on this disk.  Because of the way the program is written, circuits created on a large screen cannot be displayed on a smaller screen.  I have included sample files for both large and small screens.
  23.  
  24.      The program continually runs any circuit that is displayed.  In one cycle, the program looks at the inputs to each gate and determines what the output should be.  The output value is then propagated through all the wires to which the output is connected; it is propagated up to the input leads to other gates, but it will have no effect on the output of such gates until the next cycle.  In essence, this means that the program assumes a one-cycle time delay for a signal to pass through a gate, but no time delay for a signal to pass along a wire.  This gives the correct behavior for common circuits, although it does give a surprising result if you make a loop of several NOT gates and turn off the power with the Power Interrupt command in the Edit menu.
  25.  
  26.      When you start the program up without opening a document, you will see an empty "circuit board" on which you can construct a circuit.  The board has eight input leads along the left and eight output leads along the right.   Along the bottom of the screen is a strip of circuit elements.  These include an AND gate, an OR gate, a NOT gate, a power source (which simply outputs a constant ON signal), and a delay element (that represents a delay of a specified number of cycles when a signal propagates through it).  You can use the include command in the File menu to add subcircuits to this strip.   To place a circuit element on the circuit board, just use the mouse to drag it into position.   You will not be allowed to place a circuit element on top of any existing elements.   Once a circuit element is in place, it cannot be moved (although you can delete it with the Undo command if you do so immediately after placing it on the board.)
  27.  
  28.       To draw a connecting wire on the circuit board, move the mouse to the source of the connection.  Press the button and move the mouse to the goal of the connection.  Along the way, you can click the mouse (i.e. release the button and press it again) to make a "junction" which will pin the wire down at that point and can act as the source for new connections.  When the mouse is at the goal of the connection, release the mouse button.  The source of a connection can be an input lead on the left of the circuit board, an output from a gate, subcircuit, delay, or power source, or a junction somewhere along an existing wire.  The goal can be an output lead on the right of the circuit board or an input to a gate or subcircuit.  You can attach several wires to a single source, but only one wire to a goal.  The cursor changes from an arrow to a plus sign when it is over a legal spot for pressing or releasing the mouse.  The program is very picky; you have to be within a few pixels of the exact location.  By the way, it is not sufficient to point at a gate or other circuit element; you have to point exactly at the input or output itself.  (I admit this can be sort of annoying.)
  29.  
  30.      As soon as you connect a wire to one of the circuit board's input or output leads, it will be labeled with the word ON or OFF.  You can click on the ON/OFF next to an INPUT lead to change its value.  The value of output leads are, of course, determined for you.
  31.  
  32.      The Open, Save, Save As and Revert commands in the file menu have their usual functions.  The Include command in the File Menu will bundle a circuit previously created and saved by this program into a subcircuit and will add it to the strip of circuit elements at the bottom of the screen, so that it can be used in creating a new circuit.  The Power Interrupt command in the Edit menu will briefly turn off all wires; however, the circuit will then start running again immediately.  The Undo command in the Edit menu can undo only the most recent operation:  dragging something onto the circuit board, drawing a wire, or including a subcircuit in the scroll list.  After you use Undo, it becomes Redo, which allows you to undo the undo command.  Unfortunately, there is no general Delete command.  However, judicious use of Save, Revert, and Undo seem to make it possible to construct reasonably complex circuits without too much pain.
  33.  
  34.      Many of the example circuits included on this disk are obvious.  Here is some information about a few of those that are not obvious.
  35.      Three-bit DeMux has three inputs representing a three-bit binary number.  It has eight outputs.  If its input represents the number N in binary, where 0 イ N イ 7, then output number N is turned on and the other outputs are off.
  36.      Increment has one input and three outputs.  The outputs represent a number between 0 and 7 in binary.  Every time the input is turned ON and OFF, the number represented by the output is increased by one (cycling back to 0 once it reaches 7).
  37.      Counter (and Improved Counter) have no input and 8 outputs.  Its outputs are simply turned on one at a time, one after another.  The improvement in the Improved counter is the addition of some AND gates that prevent the output from fluttering between values as they change.
  38.      D Flip-flop is a one-bit memory element.  It has two inputs.  Call the upper one Data-In and the lower one Store-It.  It has one output, which always reflects the value stored in the flip-flop.  To store a value, put the value on Data-In and then turn Store-It ON and then OFF.  As long as Store-it remains OFF, it doesn't matter what value is on the Data-In line.
  39.      M/S Flip-flop is another type of one-bit storage element, made of two D Flip-flops.  The M/S stands for Master/Slave.
  40.      Four-bit Memory combines 4 flip-flops into a simple memory system.  It has four inputs.  The two in the middle represent an "address" that determines which of the flip-flops is connected to the other input and output lines.  Once the address is set, the other inputs and outputs work just like those for a single D Flip-flop.
  41.      Three-bit Adder can add two three-bit binary numbers, plus a carry, producing a three-bit sum and a carry-out.  The upper three inputs represent the first addend, with the high-order bit at the top.  The next three inputs are the second addend, and the lower input is the carry-in.  The top three outputs represent the sum, with high order bit at the top, and the lower output is the carry-out.
  42.  
  43.